package cn.iocoder.yudao.module.biz.controller.admin.expand.record.vo;

import cn.iocoder.yudao.framework.mybatis.core.type.StringListTypeHandler;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;

import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 拓展记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ExpandRecordRespVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14245")
    @ExcelProperty("ID")
    private Long id;

    @Schema(description = "受访人")
    @ExcelProperty("受访人")
    private String interviewee;

    @Schema(description = "受访人电话")
    @ExcelProperty("受访人电话")
    private String intervieweePhone;

    @Schema(description = "受访人职位")
    @ExcelProperty("受访人职位")
    private String intervieweePosition;

    @Schema(description = "客户需求")
    @ExcelProperty("客户需求")
    private String customerRequire;

    @Schema(description = "切入点")
    @ExcelProperty("切入点")
    @TableField(typeHandler = StringListTypeHandler.class)
    private List<String> breakthroughPoint;

    @Schema(description = "拓展时间")
    @ExcelProperty("拓展时间")
    private LocalDateTime expandTime;

    @Schema(description = "业务类型", example = "1")
    @ExcelProperty("业务类型")
    private String businessType;

    @Schema(description = "增值业务", example = "1")
    @ExcelProperty("增值业务")
    private String valueAddService;

    @Schema(description = "拓展进度")
    @ExcelProperty("拓展进度")
    private List<String> expandProcess;

    @Schema(description = "拓展情况")
    @ExcelProperty("拓展情况")
    private String expandSituation;

    @Schema(description = "客户类型", example = "2")
    @ExcelProperty("客户类型")
    private String customerType;

    @Schema(description = "客户级别")
    @ExcelProperty("客户级别")
    private String customerLevel;

    @Schema(description = "下次拜访时间")
    @ExcelProperty("下次拜访时间")
    private LocalDateTime nextTimeVisit;

    @Schema(description = "现场图片url")
    @ExcelProperty("现场图片url")
    private List<String> scenePictureUrl;

    @Schema(description = "安全评测报告url")
    @ExcelProperty("安全评测报告url")
    private List<String> securityReportUrl;

    @Schema(description = "安全方案url")
    @ExcelProperty("安全方案url")
    private List<String> serviceSchemeUrl;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "拓展所属人id", example = "11006")
    @ExcelProperty("拓展所属人id")
    private Long ownerUserId;

    @Schema(description = "经度", example = "1234.5678")
    @ExcelProperty("经度")
    private Double lng;

    @Schema(description = "纬度", example = "1234.5678")
    @ExcelProperty("纬度")
    private Double lat;

    /**
     * 拜访次数
     */
    @Schema(description = "拜访次数", example = "1")
    private String bfcs;

    /**
     * 格式化创建日期
     */
    @Schema(description = "格式化创建日期", example = "MM-dd")
    private String createTimeStr;

    @Schema(description = "拓展状态", example = "01开头的是拓展中，（02_03、03_05、04_01、04_02）是本月签约，其他是客户维护")
    private String expandStatus;

    /**
     * 拓展目标id
     */
    @Schema(description = "拓展目标id")
    private Long targetId;

    /**
     * 拓展目标名称
     */
    @Schema(description = "拓展目标名称")
    @ExcelProperty("拓展目标名称")
    private String targetName;

    /**
     * 拓展目标名称
     */
    @Schema(description = "拓展目标类型")
    private String targetType;

    /**
     * 拓展所属人昵称
     */
    @Schema(description = "拓展所属人昵称")
    private String nickName;

    @Schema(description = "其他拓展进度说明")
    private String otherExpandProcess;

    /**
     * 部门id
     */
    @Schema(description = "部门id")
    private Long deptId;

}